LGF_ActDeactMonitorDevice (FB / 2.0.0)

Übersicht

Autor: Simatic Systems Support

Kurzbeschreibung

LGF_ActDeactDevice stellt eine kompakte State Maschine zur Aktivierung und Überwachung bzw. Deaktivierung eines dezentralen IO-Gerätes bereit.
Das Modul überwacht die Geräteverbindung und den Fehlerzustand nach der Aktivierung.

Baustein Schnittstelle

LGF_ActDeactMonitorDevice (FB)
Bool  enable valid  Bool
    
Bool  deactivate busy  Bool
    
Bool  activate done  Bool
    
HW_DEVICE  hwId error  Bool
    
LGF_typeActDeactMonitorDeviceParameter  parameter status  Word
    
   deactivatingActive  Bool
    
   activatingActive  Bool
    
   isDeactivated  Bool
    
   isActivated  Bool
    
   deviceStateOK  Bool
    
   diagnostics  LGF_typeDiagnostics
    
   

Input Parameter

BezeichnerDatentyp Default Wert Beschreibung
enableBool FALSE TRUE: Aktiviert die Funktionalität des FB
deactivateBool FALSE Steigende Flanke: Deaktivieren des Gerätes angegeben `hwId`
activateBool FALSE Steigende Flanke: Aktivieren des Gerätes angegeben `hwId`
hwIdHW_DEVICE --- Hardware-ID des Geräts, das aktiviert/deaktiviert werden soll (`Device~PnIf~IODevice`)
parameterLGF_typeActDeactMonitorDeviceParameter --- Parameterdatensatz für die Funktion `LGF_ActDeactMonitorDevice`

Output Parameter

BezeichnerDatentyp Beschreibung
validBool TRUE: Ausgabewerte am FB gültig
busyBool TRUE: FB ist aktiv und neue Ausgabewerte können erwartet werden.
doneBool TRUE: Abarbeitung vom Befehl erfolgreich fertiggestellt
errorBool FALSE: Kein Fehler / TRUE: Während der Ausführung des FB ist ein Fehler aufgetreten
statusWord 16#0000-16#7FFF: Status des FB / 16#8000-16#FFFF: Fehleridentifikation (siehe folgende Tabelle)
deactivatingActiveBool TRUE: Deaktivierung des Gerätes aktiv
activatingActiveBool TRUE: Aktivierung des Geräts aktiv
isDeactivatedBool TRUE: Gerät deaktiviert
isActivatedBool TRUE: Gerät aktiviert
deviceStateOKBool TRUE: Gerät ist aktiviert und mit dem IO-System verbunden FALSE: Gerät ist defekt oder nicht verbunden, abhängig von `isActivated`
diagnosticsLGF_typeDiagnostics Diagnosestruktur zur Speicherung und Übertragung von Diagnoseinformationen von Blöcken über die Schnittstelle.

Status & Error Meldungen

Code / WertBezeichner / Beschreibung
16#0000STATUS_DEACTIVATED
Geräte Deaktivierung erfolgreich beendet
16#0001STATUS_ACTIVATED
Geräte Aktivierung erfolgreich beendet
16#7000STATUS_NO_CALL
Kein Auftrag wird gerade bearbeitet
16#7001STATUS_FIRST_CALL
Erster Aufruf nach eingehendem neuem Auftrag (steigende Flanke 'Freigabe')
16#7002STATUS_SUBSEQUENT_CALL
Folgeanruf bei aktiver Bearbeitung ohne weitere Angaben
16#7040STATUS_DEACTIVATION
Deaktivierung des Geräts
16#7060STATUS_ACTIVATION
Aktivierung des Geräts
16#8600ERR_UNDEFINED_STATE
Fehler: Aufgrund eines undefinierten Zustands im Zustandsautomaten
16#8601ERR_LOG2GEO
Fehler: Log2Geo, möglicherweise ist die HW ID für das Gerät falsch, siehe `diagnostics.subFunctionStatus` für weitere Informationen
16#8602ERR_GEO2LOG
Fehler: Geo2Log, möglicherweise ist die HW-ID für das Gerät falsch, siehe `diagnostics.subFunctionStatus` für weitere Informationen
16#8640ERR_DEVICE_DEACTIVATING
Fehler: Deaktivierung `D_ACT_DP` des Geräts, siehe `diagnostics.subFunctionStatus` für weitere Informationen
16#8641ERR_DEVICE_DEACTIVATING_TIME_OUT
Fehler: Deaktivierung des Gerätes - Watchdog-Timer abgelaufen
16#8642ERR_DEVICE_DEACTIVATING_RETRIES_REACHED
Fehler: Deaktivierung des Geräts - Wiederholungszähler maximum erreicht.
16#8650ERR_READ_ACTIVATION_STATE_WHILE_DEACTIVATED
Fehler: Deaktivierungsstatus (D_ACT_DP) des Geräts ist falsch, gewünscht ist `16#0000` oder `16#0002`, siehe `diagnostics.subFunctionStatus` für weitere Informationen
16#8660ERR_DEVICE_ACTIVATING
Fehler: Aktivierung `D_ACT_DP` des Geräts, siehe `diagnostics.subFunctionStatus` für weitere Informationen
16#8661ERR_DEVICE_ACTIVATING_TIME_OUT
Fehler: Aktivierung des Geräts - Watchdog-Timer abgelaufen. Kann an einer unterbrochenen Geräteverbindung liegen.
16#8662ERR_DEVICE_ACTIVATING_RETRIES_REACHED
Fehler: Aktivierung des Geräts - Wiederholungszähler maximum erreicht. Kann an einer unterbrochenen Geräteverbindung liegen.
16#8663ERR_READ_DEVICES_STATES_DURING_ACTIVATION
Fehler: Read Device States (DeviceStates) während der Aktivierung des Gerätes, siehe `diagnostics.subFunctionStatus` für weitere Informationen
16#8670ERR_READ_DEVICES_STATES_WHILE_ACTIVE
Fehler: Read Device States (DeviceStates) während das Gerät aktiv ist, siehe `diagnostics.subFunctionStatus` für weitere Informationen
16#8671ERR_DEVICE_STATE_WHILE_ACTIVE
Fehler: Gerät meldet vorliegenden Fehler und ist unerreichbar, fehlerhaftes Gerät oder IO-System
16#8672ERR_READ_ACTIVATION_STATE_WHILE_ACTIVE
Fehler: Aktivierungsstatus (D_ACT_DP) des Geräts ist falsch, gewünscht ist `16#0000` oder `16#0001`, siehe `diagnostics.subFunctionStatus` für weitere Informationen
16#8690ERR_DISABLING_DEACT_DEVICE
Fehler: Deaktivierung `D_ACT_DP` des Geräts führt zu einem Fehler bei der Deaktivierung, siehe `diagnostics.subFunctionStatus` für weitere Informationen
16#8691ERR_DISABLING_WATCHDOG
Fehler: Watchdog-Timer beim Deaktivieren abgelaufen

Benutzer definierte Datentypen

LGF_typeActDeactMonitorDeviceParameter (UDT / V2.0.0)

Dieser UDT gehört zum Modul LGF_ActDeactMonitorDeviceParameter und listet alle möglichen Parameter zur Konfiguration des Verhaltens auf.

Bezeichner Datentyp Default Wert Beschreibung
activationRetries SInt 100 Anzahl der Wiederholungen der Aktivierung & Deaktivierung, bis einen Fehler anzeigt wird
timeOutActDeact Time T#5S Die Zeit für die Überwachung der Befehle `activate` und `deactivate` sollte größer sein als die in der Hardwarekonfiguration der SPS im Abschnitt `Startup` eingestellte `Parametrierungszeit`.
timeOutStateMonitoring Time T#100ms Zeit zur Überwachung des Gerätezustandes bei aktiviertem Gerät
Nach Ablauf der Zeit liegt ein Fehler vor, solange der Zustand fehlerhaft ist.
enableAndDeactivate Bool TRUE TRUE: Deaktivierung des Geräts während des Starts / der Aktivierung (prio vor `enableAndActive`)
FALSE: Beibehaltung des aktuellen Zustands oder `enableAndActivate`
enableAndActivate Bool FALSE TRUE: Freigabe / Aktivierung des Geräts während des Starts / der Freigabe
FALSE: Beibehaltung des aktuellen Zustands oder `enableAndDeactivate`
disableAndDeactivate Bool TRUE TRUE: Gerät beim Ausschalten des Moduls deaktivieren/deaktivieren
FALSE: aktuellen Zustand beibehalten

LGF_typeDiagnostics (UDT / V1.0.1)

Diagnosestruktur zur Speicherung und Übertragung von Diagnoseinformationen von Blöcken über die Schnittstelle.

Bezeichner Datentyp Default Wert Beschreibung
status Word 16#0000 Status des Bausteins oder Fehleridentifikation beim Auftreten des Fehlers
subfunctionStatus Word 16#0000 Status oder Rückgabewert von aufgerufenen FB's, FC's und Systembausteinen
stateNumber DInt 0 Zustand in der Zustandsmaschine des Blocks, in dem der Fehler aufgetreten ist

Funktionsbeschreibung

Das Modul stellt den Ablauf zum Aktivieren und Deaktivieren eines dezentralen IO-Geräts im Profinet (PN, S7-1500 & S7-1200) sowie im Profibus (DP, S7-1500) Netzwerk zur Verfügung.

Das Aktivieren des Gerätes (definiert an hwId) wird durch eine steigende Flanke an activate eingeleitet, nach vollständiger Aktivierung wir dieses am Ausgang isActivated und deviceStateOK angezeigt. Am Ausgang deviceStateOK wird der Verbindungsstatus angezeigt.
Die Verbindung wird überwacht und bei einem Ausfall von mehr als der eingestellten Überwachungszeit timeOutStateMonitoring am Ausgang und als Fehler gemeldet. Nach erfolgreicher Wiederherstellung der Verbindung durch das System wird ebenfalls die konfigurierte Zeit gewartet bis der Fehler zurückgesetzt wird zum Sicherstellen der Stabilität.


Hinweis
Der Verbindungsstatus des Dezentralen Gerätes wird in der TIA Portal Projekt Navigation in der PLC, welcher der IO-Controller ist, unter dem Punkt Dezentrale Peripherie angezeigt, wenn sie mit dem Engineering System online sind.

Das Deaktivieren des Gerätes (definiert an hwId) wird durch eine steigende Flanke an deactivate eingeleitet, nach vollständiger Aktivierung wir dieses am Ausgang isDeactivated angezeigt.

Es ist möglich die Zustände für das Ein- sowie Ausschalten zu definieren, sowie die Überwachungszeiten zum Aktivieren und Deaktivieren sowie der Verbindungsüberwachung.

Alle Fehler werden automatisch zurück gesetzt sobald der fehlerhafte Zustand behoben ist.
Die Ausnahme hierzu stellen Fehler dar, welche nur durch einen Eingriff in die Software behoben werden können, wie zum Beispiel eine falsche oder nicht vorhandene Hardware ID eines nicht vorhanden dezentralen IO-Gerätes.


Hinweis
Der Parameter timeOutActDeact zur Überwachung der Aktivierungs- und Deaktivierungssequenz sollte immer größer eingestellt werden als der Parametrierte Wert in der Gerätekonfiguration / Anlauf / Parametrierungszeit.

Parametrierung PLC

Änderungshistorie

Version & DatumÄnderungsbeschreibung
1.0.0Simatic Systems Support
06.04.2024First released version in different project
2.0.0Simatic Systems Support
10.03.2025Refactoring & Improve Code for LGF Integration
Thats why we start here with V2.0 for the LGF integration